//package com.example.easyexcel.excelOld.config;
//
//import com.alibaba.excel.write.handler.AbstractRowWriteHandler;
//import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
//import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
//import com.example.easyexcel.excelOld.domain.ExcelError;
//import org.apache.poi.ss.usermodel.*;
//
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//
///**
// * @Description：将参数校验失败的Exccel，添加批注后导出
// * @Author：chenyanbin
// * @Date：2021/2/3 10:38 上午
// * @Versiion：1.0
// */
//public class CommentsWriteHandler extends AbstractRowWriteHandler {
//    private Map<Integer, List<ExcelError>> excelErrorMap = new HashMap<>();
//
//    public void setExcelErrorMap(Map<Integer, List<ExcelError>> excelErrorMap) {
//        this.excelErrorMap = excelErrorMap;
//    }
//
//    @Override
//    public void afterRowDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Integer relativeRowIndex, Boolean isHead) {
//        if (!isHead){
//            Sheet sheet = writeSheetHolder.getSheet();
//            if (excelErrorMap.containsKey(relativeRowIndex)) {
//                List<ExcelError> excelErrors = excelErrorMap.get(relativeRowIndex);
//                excelErrors.forEach(obj -> {
//                    setCellCommon(sheet, obj.getRow() + 1, obj.getColumn(), obj.getErrorMsg());
//                });
//            }
//        }
//    }
//
//    /**
//     * 设置单元格批注
//     * @param sheet sheet
//     * @param rowIndex 行索引
//     * @param colIndex 列索引
//     * @param value 批注
//     */
//    protected void setCellCommon(Sheet sheet, int rowIndex, int colIndex, String value) {
//        Workbook workbook = sheet.getWorkbook();
//        CellStyle cellStyle = workbook.createCellStyle();
//        cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
//        cellStyle.setFillForegroundColor(IndexedColors.RED.getIndex());
//        cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
//        Row row = sheet.getRow(rowIndex);
//        if (row == null) {
//            return;
//        }
//        Cell cell = row.getCell(colIndex);
//        if (cell == null) {
//            cell = row.createCell(colIndex);
//        }
//        if (value == null) {
//            cell.removeCellComment();
//            return;
//        }
//        Drawing<?> drawing = sheet.createDrawingPatriarch();
//        CreationHelper factory = sheet.getWorkbook().getCreationHelper();
//        ClientAnchor anchor = factory.createClientAnchor();
//        Row row1 = sheet.getRow(anchor.getRow1());
//        if (row1 != null) {
//            Cell cell1 = row1.getCell(anchor.getCol1());
//            if (cell1 != null) {
//                cell1.removeCellComment();
//            }
//        }
//        Comment comment = drawing.createCellComment(anchor);
//        RichTextString str = factory.createRichTextString(value);
//        comment.setString(str);
//        comment.setAuthor("admin");
//        cell.setCellComment(comment);
//        cell.setCellStyle(cellStyle);
//    }
//}